package com.ktgj.train.domain;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.ktgj.common.core.annotation.Excel;
import com.ktgj.train.domain.vo.OperateVo;
import com.ktgj.train.domain.vo.TrainOrderRefundrecordVo;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 火车票订单详情
 */
public class TrainStayOutTicket implements Serializable {
    public TrainStayOutTicket() {
        guestInformations = new ArrayList<>();
        refundrecords = new ArrayList<>();
    }

    /**
     * 订单号
     */
    private String orderNumber;
    /**
     * 出发站
     */
    private String departureStationName;
    /**
     * 到达站
     */
    private String arrivalStationName;
    /**
     * 出发时间
     */
    private String departureTime;
    /**
     * 到达时间
     */
    private String arrivalTime;
    /**
     * 乘车日期
     */
    private String travelDate;
    /**
     * Order订单状态:未支付=10,支付中=20,支付成功=30,出票成功=40,出票失败=50,取消订单=60
     */
    private String status;
    /**
     * 车次号
     */
    private String trainNumber;
    /**
     * 跨天 0表示当天到达
     */
    private Long addDay;
    /**
     * 积分
     */
    private BigDecimal points;
    /**
     * 优惠券Id
     */
    private Long couponId;
    /**
     * 优惠券金额
     */
    private BigDecimal couponAmount;
    /**
     * 预留款
     */
    private BigDecimal depositAmount;
    /**
     * 0、无座 1、硬座 2、软座 3、硬卧 4、软卧 5、包厢硬卧 6、高级软卧 7、一等软座 8、二等软座 9、商务座 A、高级动卧 E、特等软座 F、动卧 H、一人软包 I、一等卧 J、二等卧 M、一等座 O、二等座 P、特等座 Q、多功能座
     */
    private String seatType;
    /**
     * 票单价
     */
    private BigDecimal ticketPrice;
    /**
     * 总价
     */
    private BigDecimal sumAmount;
    /**
     * 支付价
     */
    private BigDecimal payAmount;
    /**
     * 过期时间
     */
    private String expiredTime;
    /**
     * 12306取票号
     */
    private String order12306Number;
    /**
     * 联系人手机号
     */
    private String linkPhone;
    /**
     * 占座描述信息
     */
    private String msg;
    /**
     * 是否占座成功
     */
    private String ordersuccess;
    /**
     * 历时
     */
    private String runTime;
    /**
     * 订单创建时间
     */
    private String createTime;
    /**
     * 乘客信息
     */
    private List<GuestInformation> guestInformations;
    /**
     * 退票记录
     */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private List<TrainOrderRefundrecordVo> refundrecords;

    /*---------------------------------------------------------------------------*/

    /**
     * 出票渠道
     */
    private String ticketingChannel;

    /**
     * 服务费
     */
    private String serviceCharge;

    /**
     * 预定时间
     */
    private String scheduledTime;

    /**
     * 预定员
     */
    private String reservation;

    /**
     * 保险费
     */
    private String insurance;

    /**
     * 支付方式
     * */
    private String paymentMethod;

    /**
     * 平台交易号
     * */
    private String transactionNum;

    /**
     * 订单类型
     * */
    private String orderType;

    /**
     * 联系人
     * */
    private String contact;

    /**
     * 删除时间
     * */
    private String deleteTime;

    /**
     * 备注
     * */
    private String remark;

    /**
     * 操作标题
     * */
    private List<OperateVo> operateVoList;

    public String getTicketingChannel() {
        return ticketingChannel;
    }

    public void setTicketingChannel(String ticketingChannel) {
        this.ticketingChannel = ticketingChannel;
    }

    public String getServiceCharge() {
        return serviceCharge;
    }

    public void setServiceCharge(String serviceCharge) {
        this.serviceCharge = serviceCharge;
    }

    public String getScheduledTime() {
        return scheduledTime;
    }

    public void setScheduledTime(String scheduledTime) {
        this.scheduledTime = scheduledTime;
    }

    public String getReservation() {
        return reservation;
    }

    public void setReservation(String reservation) {
        this.reservation = reservation;
    }

    public String getInsurance() {
        return insurance;
    }

    public void setInsurance(String insurance) {
        this.insurance = insurance;
    }

    public String getPaymentMethod() {
        return paymentMethod;
    }

    public void setPaymentMethod(String paymentMethod) {
        this.paymentMethod = paymentMethod;
    }

    public String getTransactionNum() {
        return transactionNum;
    }

    public void setTransactionNum(String transactionNum) {
        this.transactionNum = transactionNum;
    }

    public String getOrderType() {
        return orderType;
    }

    public void setOrderType(String orderType) {
        this.orderType = orderType;
    }

    public String getContact() {
        return contact;
    }

    public void setContact(String contact) {
        this.contact = contact;
    }

    public String getDeleteTime() {
        return deleteTime;
    }

    public void setDeleteTime(String deleteTime) {
        this.deleteTime = deleteTime;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public List<OperateVo> getOperateVoList() {
        return operateVoList;
    }

    public void setOperateVoList(List<OperateVo> operateVoList) {
        this.operateVoList = operateVoList;
    }

    public String getOrderNumber() {
        return orderNumber;
    }

    public void setOrderNumber(String orderNumber) {
        this.orderNumber = orderNumber;
    }

    public String getDepartureStationName() {
        return departureStationName;
    }

    public void setDepartureStationName(String departureStationName) {
        this.departureStationName = departureStationName;
    }

    public String getArrivalStationName() {
        return arrivalStationName;
    }

    public void setArrivalStationName(String arrivalStationName) {
        this.arrivalStationName = arrivalStationName;
    }

    public String getDepartureTime() {
        return departureTime;
    }

    public void setDepartureTime(String departureTime) {
        this.departureTime = departureTime;
    }

    public String getArrivalTime() {
        return arrivalTime;
    }

    public void setArrivalTime(String arrivalTime) {
        this.arrivalTime = arrivalTime;
    }

    public String getTravelDate() {
        return travelDate;
    }

    public void setTravelDate(String travelDate) {
        this.travelDate = travelDate;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getTrainNumber() {
        return trainNumber;
    }

    public void setTrainNumber(String trainNumber) {
        this.trainNumber = trainNumber;
    }

    public Long getAddDay() {
        return addDay;
    }

    public void setAddDay(Long addDay) {
        this.addDay = addDay;
    }

    public BigDecimal getPoints() {
        return points;
    }

    public void setPoints(BigDecimal points) {
        this.points = points;
    }

    public Long getCouponId() {
        return couponId;
    }

    public void setCouponId(Long couponId) {
        this.couponId = couponId;
    }

    public BigDecimal getCouponAmount() {
        return couponAmount;
    }

    public void setCouponAmount(BigDecimal couponAmount) {
        this.couponAmount = couponAmount;
    }

    public BigDecimal getDepositAmount() {
        return depositAmount;
    }

    public void setDepositAmount(BigDecimal depositAmount) {
        this.depositAmount = depositAmount;
    }

    public String getSeatType() {
        return seatType;
    }

    public void setSeatType(String seatType) {
        this.seatType = seatType;
    }

    public BigDecimal getTicketPrice() {
        return ticketPrice;
    }

    public void setTicketPrice(BigDecimal ticketPrice) {
        this.ticketPrice = ticketPrice;
    }

    public BigDecimal getSumAmount() {
        return sumAmount;
    }

    public void setSumAmount(BigDecimal sumAmount) {
        this.sumAmount = sumAmount;
    }

    public BigDecimal getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(BigDecimal payAmount) {
        this.payAmount = payAmount;
    }

    public List<GuestInformation> getGuestInformations() {
        return guestInformations;
    }

    public void setGuestInformations(List<GuestInformation> guestInformations) {
        this.guestInformations = guestInformations;
    }

    public String getOrder12306Number() {
        return order12306Number;
    }

    public void setOrder12306Number(String order12306Number) {
        this.order12306Number = order12306Number;
    }

    public String getExpiredTime() {
        return expiredTime;
    }

    public void setExpiredTime(String expiredTime) {
        this.expiredTime = expiredTime;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public String getOrdersuccess() {
        return ordersuccess;
    }

    public void setOrdersuccess(String ordersuccess) {
        this.ordersuccess = ordersuccess;
    }

    public List<TrainOrderRefundrecordVo> getRefundrecords() {
        return refundrecords;
    }

    public void setRefundrecords(List<TrainOrderRefundrecordVo> refundrecords) {
        this.refundrecords = refundrecords;
    }

    public String getRunTime() {
        return runTime;
    }

    public void setRunTime(String runTime) {
        this.runTime = runTime;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    public String getLinkPhone() {
        return linkPhone;
    }

    public void setLinkPhone(String linkPhone) {
        this.linkPhone = linkPhone;
    }
}
